package com.hjqjl.whapplib.base;

import android.util.ArrayMap;

import com.hjqjl.common_lib.base.ComLibApplication;
import com.hjqjl.common_lib.net.LoggerInterceptor;
import com.mp5a5.www.library.utils.ApiConfig;
import com.mp5a5.www.library.utils.SslSocketConfigure;

import java.util.ArrayList;
import java.util.List;

import okhttp3.Interceptor;

/**
 * 要想使用BaseApplication，必须在组件中实现自己的Application，并且继承BaseApplication；
 * 组件中实现的Application必须在module包中的AndroidManifest.xml中注册，否则无法使用；
 * 组件的Application需置于java/debug文件夹中，不得放于主代码；
 *
 * @version V1.0.0
 * @name BaseApplication
 */
public class BaseApplication extends ComLibApplication {
    private String baseUrl = "https://api.apiopen.top/";

    @Override
    public void onCreate() {
        super.onCreate();
        initNetWork();
    }

    /**
     * 联网初始化
     */
    private void initNetWork() {
//        //header参数
//        ArrayMap<String, String> headMap = new ArrayMap<>();

        //拦截日志
        List<Interceptor> interceptors = new ArrayList<>();
        interceptors.add(new LoggerInterceptor());

//        //HTTPS认证配置
//        SslSocketConfigure sslSocketConfigure = new SslSocketConfigure.Builder()
//                .setVerifyType(2)//单向双向验证 1单向  2 双向
//                .setClientPriKey("client.bks")//客户端keystore名称
//                .setTrustPubKey("truststore.bks")//受信任密钥库keystore名称
//                .setClientBKSPassword("123456")//客户端密码
//                .setTruststoreBKSPassword("123456")//受信任密钥库密码
//                .setKeystoreType("BKS")//客户端密钥类型
//                .setProtocolType("TLS")//协议类型
//                .setCertificateType("X.509")//证书类型
//                .build();

        ApiConfig build = new ApiConfig.Builder()
                .setBaseUrl(baseUrl)//BaseUrl，这个地方加入后项目中默认使用该url
                .setSucceedCode(200)//成功返回码  NBA的测试返回成功code为0  上传图片返回code为200 由于是不同接口 请大家注意
//                .setInvalidToken(0)//Token失效码
//                .setTokenInvalidFilter("com.mp5a5.quit.tokenInvalidBroadcastFilter")//失效广播Filter设置
//                .setQuitCode(0)//退出app码
//                .setQuitFilter("com.mp5a5.quit.quitAppBroadcastFilter")//失效广播Filter设置
                //.setDefaultTimeout(2000)//响应时间，可以不设置，默认为2000毫秒
//                .setHeads(headMap)//动态添加的header，也可以在其他地方通过ApiConfig.setHeads()设置
                //.setOpenHttps(true)//开启HTTPS验证
                //.setSslSocketConfigure(sslSocketConfigure)//HTTPS认证配置
                .setInterceptor(interceptors)
                .build();
        build.init(this);
    }
}
